অ্যাপাচি অ্যান্ট (Apache Ant) একটি ওপেন সোর্স বিল্ড টুল যা সফটওয়্যার ডেভেলপমেন্ট ও বিল্ড প্রক্রিয়া অটোমেট করতে ব্যবহৃত হয়। এটি বিল্ড ফাইল (build.xml
) ভিত্তিক এবং সেই ফাইলগুলির মধ্যে ডিফাইন করা টাস্কের মাধ্যমে বিভিন্ন কার্যক্রম পরিচালনা করে।
এছাড়া, অ্যাপাচি অ্যান্টে Ant Task নামে একটি টাস্ক আছে যা আপনাকে অন্য কোনো বিল্ড ফাইলের টাস্ক চালানোর সুযোগ দেয়। এটি তখন ব্যবহৃত হয় যখন আপনি একটি বিল্ড স্ক্রিপ্টের মধ্যে অন্য একটি বিল্ড স্ক্রিপ্টের টাস্ক ব্যবহার করতে চান।
Ant Task টাস্কটি অন্য বিল্ড ফাইলের টাস্ক বা টার্গেট চালাতে ব্যবহৃত হয়। এটি মূলত একটি বিল্ড স্ক্রিপ্ট থেকে অন্য স্ক্রিপ্টের টাস্ক বা টার্গেট এক্সিকিউট করার জন্য ব্যবহৃত হয়। এতে আপনি অন্য কোনো বিল্ড ফাইলের নির্দিষ্ট টাস্ক বা টার্গেট চালানোর জন্য সেই ফাইলটি রেফারেন্স করতে পারবেন।
টাস্কটি অন্য বিল্ড ফাইল থেকে টাস্ক বা টার্গেট চালাতে ব্যবহৃত হয়। এর মাধ্যমে আপনি একটি বিল্ড ফাইলের মধ্যে অন্য বিল্ড ফাইলের নির্দিষ্ট টাস্ক বা টার্গেট ইন্টারনালি চালাতে পারেন।
<ant file="build.xml" target="target_name"/>
এটি build.xml
ফাইল থেকে target_name
নামক টার্গেট চালাবে।
file অ্যাট্রিবিউটটি সেই বিল্ড ফাইলের পাথ নির্ধারণ করে, যেটি আপনি চালাতে চান। এটি আপনার কাজের স্ক্রিপ্টের বাইরের একটি বিল্ড ফাইল হতে পারে।
উদাহরণ:
<ant file="other_build.xml" target="compile"/>
এটি other_build.xml
বিল্ড ফাইল থেকে compile
টার্গেট চালাবে।
target অ্যাট্রিবিউটটি সেই টার্গেট নির্ধারণ করে, যেটি আপনি অন্য বিল্ড ফাইল থেকে চালাতে চান।
উদাহরণ:
<ant file="other_build.xml" target="clean"/>
এটি other_build.xml
বিল্ড ফাইল থেকে clean
টার্গেট চালাবে।
verbose অ্যাট্রিবিউটটি true
সেট করলে আরো বিস্তারিত আউটপুট প্রদান করবে, যা আপনাকে বুঝতে সাহায্য করবে কীভাবে টাস্কটি সম্পন্ন হচ্ছে।
উদাহরণ:
<ant file="other_build.xml" target="build" verbose="true"/>
এটি other_build.xml
থেকে build
টার্গেট চালাবে এবং সমস্ত কার্যক্রম বিস্তারিতভাবে দেখাবে।
inheritAll অ্যাট্রিবিউটটি যদি true
হয়, তবে এটি প্রথম বিল্ড ফাইলে থাকা সমস্ত প্রপার্টি, টাস্ক এবং কনফিগারেশন দ্বিতীয় বিল্ড ফাইলের মধ্যে হুবহু ব্যবহার করবে।
উদাহরণ:
<ant file="other_build.xml" target="deploy" inheritAll="true"/>
এটি other_build.xml
ফাইলের deploy
টার্গেট চালাবে এবং প্রথম বিল্ড ফাইলের সমস্ত কনফিগারেশন এবং প্রপার্টি ব্যবহার করবে।
inheritRefs অ্যাট্রিবিউটটি যদি true
হয়, তবে এটি দ্বিতীয় বিল্ড ফাইলে প্রথম বিল্ড ফাইলের সমস্ত রেফারেন্স (references) কপি করবে।
উদাহরণ:
<ant file="other_build.xml" target="package" inheritRefs="true"/>
এটি other_build.xml
ফাইলের package
টার্গেট চালাবে এবং প্রথম বিল্ড ফাইলে থাকা সমস্ত রেফারেন্স ব্যবহার করবে।
<project name="MainProject" default="runOtherTarget">
<target name="runOtherTarget">
<!-- Run target from another build file -->
<ant file="other_build.xml" target="compile"/>
</target>
</project>
এখানে, টাস্কটি other_build.xml
ফাইল থেকে compile
টার্গেট চালাবে।
<project name="MainProject" default="runOtherBuild">
<target name="runOtherBuild">
<!-- Run another build file's task with verbose output -->
<ant file="other_build.xml" target="test" verbose="true"/>
</target>
</project>
এটি other_build.xml
ফাইলের test
টার্গেট চালাবে এবং বিল্ড প্রক্রিয়ার বিস্তারিত আউটপুট দেখাবে।
<project name="MainProject" default="runBuild">
<target name="runBuild">
<!-- Run target from another build file, inheriting properties and configurations -->
<ant file="other_build.xml" target="deploy" inheritAll="true"/>
</target>
</project>
এটি other_build.xml
ফাইলের deploy
টার্গেট চালাবে এবং প্রথম বিল্ড ফাইলের সমস্ত প্রপার্টি এবং কনফিগারেশন ব্যবহার করবে।
<project name="MainProject" default="runDeploy">
<target name="runDeploy">
<!-- Run another build file's target with references inherited -->
<ant file="other_build.xml" target="deploy" inheritRefs="true"/>
</target>
</project>
এটি other_build.xml
ফাইলের deploy
টার্গেট চালাবে এবং প্রথম বিল্ড ফাইলের সমস্ত রেফারেন্স ব্যবহার করবে।
টাস্কটি অ্যাপাচি অ্যান্টের একটি গুরুত্বপূর্ণ টাস্ক যা আপনাকে এক বিল্ড ফাইল থেকে অন্য বিল্ড ফাইলের টাস্ক বা টার্গেট চালানোর সুযোগ দেয়। এটি বিশেষত মাল্টি-বিল্ড স্ক্রিপ্ট ব্যবহারের ক্ষেত্রে সহায়ক, যেখানে বিভিন্ন বিল্ড ফাইলে বিভক্ত টাস্কগুলো একত্রে পরিচালিত হয়। file
, target
, verbose
, inheritAll
, এবং inheritRefs
অ্যাট্রিবিউট ব্যবহার করে আপনি আরও কাস্টমাইজড বিল্ড প্রক্রিয়া তৈরি করতে পারেন।
common.read_more